2.4 SMTP 与 EMail
电子邮件系统由三个主要部分组成:用户代理(User Agent)、邮件服务器(Mail Server) 与 简单文件传输协议(Simple Mail Transfer Protocol,SMTP)。
用户代理即为安装在用户终端上的邮件客户端。
邮件服务器是电子邮件系统的核心,邮件服务器为每个接收方维护一个 邮箱(Mailbox),其管理与维护着所有的报文。
SMTP 协议是用于 邮件服务器 之间传送邮件报文的协议,其基于 TCP,知名端口号为 25。最初的 SMTP 限制报文必须以 7bit ASCII 码格式发送。不过如今借助于 多用途互联网邮件拓展类型(Multipurpose Internet Mail Extensions,MIME),邮件允许传输各种各样的文件。关于 MIME 详见 MDN MIME 类型(IANA 媒体类型)。
SMTP 协议不依赖于中间服务器中转邮件,而是 源服务器与目标服务器直接建立连接。此外 SMTP 也是一个持续连接的协议,多条报文可以经由一条 TCP 连接进行传输。
基于 SMTP 协议的邮件传输一般经历三个过程:握手、传输报文、关闭连接。例如一个典型的邮件收发过程如下:
- 发送方在用户代理上设置邮件的内容与接收方,用户代理与该用户的邮件服务器建立连接,将邮件报文从代理发至服务器,并存储在服务器的 报文队列(Message Queue) 中。
- 发送方的邮件服务器通过 SMTP 协议与接收方的邮件服务器建立连接,完成握手后发送邮件报文。
- 接收方的邮件服务器接收到报文后,接收方可以通过用户代理查看该邮件并进行对应的操作。

下面是一个 SMTP 交互的例子:
邮件报文由两部分组成:首部行与报文体。首部行包含一些环境信息,其中收件人 from 与寄件人 to 为必选字段,其余字段例如抄送 cc、主题 subject 等为可选字段。报文首部之后紧接着是一个空白行,随后为报文体。
用户代理从邮件服务器查看、拉取邮件时可以使用几种协议,常见的有 POP3 (Post Office Protocol 3)、HTTP 与 IMAP(Internet Mail Access Protocol,互联网邮件访问协议)。关于 POP3 与 IMAP 具体的原理,请见:MDN IMAP 与 MDN POP3。